The present invention generally relates to streaming digital media and, in particular, to the organization of coded video data among transmission segments to support enhanced playback functions for streaming media.
Streaming digital media from a remote server to a client device over a communication network is an increasingly popular way for retrieving and viewing various digital media, which may include audio and video streams. Within a media player, users are accustomed to traditional playback control functions, such as rewind and fast forward. To implement these playback control functions for digital media, I-frames are selected at predetermined intervals depending on the fast forward or rewind speed.
However, implementing playback control functions for streaming digital media presents difficulties that are not encountered for their locally-stored counterparts. For example, when implementing fast forward functions, upcoming frames may not yet be stored at a client device. As a result, the client device must retrieve frames from the remote server as part of the streaming operation. The I-frames used for fast forward and rewind functions are intermixed with too many frames of other types to be downloaded efficiently. In addition, characteristics of typical network connections can present further difficulties in retrieving these frames in a manner compatible with achieving desirable qualities of the control functions. For example, it is typically desirable to perform rewind and fast forward functions by displaying frames selected at a predetermined interval in order to achieve a visual cadence that is pleasing to a viewer (e.g., not too choppy). However, retrieving frames over a communications network often involves variable and unpredictable transmission. Such variability and unpredictability has, thus far, caused processes dependent upon those retrieved frames, such as the implementation of playback control functions, to be unreliable.
In light of the drawbacks discussed above, the inventors have developed improved systems and methods for implementing playback control functions for streaming media.